php - Symfony2 表单事件 PreSetData 订阅者
全部标签 是否可以在您的ActiveRecord模型中使用委托(delegate)并在其上使用类似:if的条件?classUser:master,:if=>:has_master?belongs_to:master,:class_name=>"User"defhas_master?master.present?endend 最佳答案 不,你不能,但你可以传递:allow_nil=>true选项以在master为nil时返回nil。classUser:master,:allow_nil=>true#...enduser.master=nilus
我正在使用devise并创建了一个名为:active的用户字段,它要么是true要么是false。在允许用户登录之前,我必须手动使用户处于事件状态(true)。至少这是意图。我试过这个...classSessionsControllerafter_sign_in_path_for(resource)endend然而,这并没有捕捉到用户可以登录的所有地方,例如,当用户更改密码时,网站会自动让他们在之后自动登录。但是,如果用户不活跃,我不希望他们被允许登录,而是被重定向到sorry_not_active_url。如果用户不活跃,阻止用户登录的最佳方法是什么?谢谢。
有什么方法可以访问嵌套的form_bulder.object?##controller@project=Project.new@project.tasks.buildform_for(@project)do|f|f.object.nil?##returnsfalsefields_for:tasksdo|builder|builder.object.nil?##returnstrueendend 最佳答案 您必须在项目模型中有accepts_nested_attributes_for才能传递对象。classProject
基本上只是检查以确保设置了url参数。我如何在PHP中做到这一点:if(isset($_POST['foo'])&&isset($_POST['bar'])){}这是RoR中isset()的粗略/最佳等价物吗?if(!params['foo'].nil?&&!params['bar'].nil?)end 最佳答案 更接近的匹配可能是#present?#returnstrueifnotnilandnotblankparams['foo'].present?还有一些其他的方法#returnstrueifnilparams['foo'].
我有这个form_for:truedo|f|%>10,:rows=>1%>"input_comment"%>即生成下一段代码html:如果我在同一个页面中有多个表单,那么使用相同id的html是无效的。form_for生成的idid="new_comment"textarea生成的idid="comment_content"在同一个页面中有这么多表单是无效的html。如何从Rails3.1更改form_for方法助手自动生成的ID? 最佳答案 除了miked所说的,为帖子创建唯一表单ID的最简单方法是在id属性中使用帖子的ID号,如
我正在尝试了解如何实现这一目标。谁能给我建议或指出正确的方向?我目前所做的(如下面的代码片段所示)允许我一次显示每个字段的1个错误。这不完全是我想做的。我想一次显示1条错误消息。例如,“名字不能为空”,那么一旦错误被解决,错误数组中的下一个错误就会被显示出来。这应该一直发生,直到所有错误都得到解决。 最佳答案 ActiveRecord将验证错误存储在一个名为errors的数组中。如果您有一个User模型,那么您将像这样访问给定实例中的验证错误:@user=User.create[params[:user]]#createwillau
我正在使用ActiveAdmin为某些模型提供管理员。我需要为其中一个提供自定义的新表单,但将编辑表单保留为ActiveAdmin提供的默认表单。这就是我所拥有的。它的工作原理是它为我提供了我想要的新表单,但编辑表单也在使用新表单,这不是我想要的:ActiveAdmin.registerDocumentdoform:partial=>'form'end我试过这个,但它给出了一个错误,“new”是一个未定义的方法:ActiveAdmin.registerDocumentdonewdoform:partial=>'form'endend 最佳答案
我需要在不同的Rails模型中使用不同的数据库连接。有没有一种不太hacky的方法来做到这一点?任何链接或搜索关键字都很棒:) 最佳答案 将新部分添加到您的database.yml例如other_development:adapter:mysqldatabase:otherdb_developmentusername:rootpassword:host:localhostother_production:adapter:mysqldatabase:otherdb_productionusername:rootpassword:hos
对于普通列,您可以通过columns类方法获取它们。但是,如果在关系方法中设置了foreign_key选项,关联的名称可能会完全不同。例如,给定classPosthas_many:comments,:foreign_key=>:message_id#thisisacontrivedexampleend如果我做了Post.column_names,我可以得到message_id,但是有什么方法可以得到comments吗? 最佳答案 Model.reflections提供有关模型关联的信息。它是一个以关联名称为关键字的Hash。例如Po
我正在使用以下内容允许我的用户在他们的个人资料中选择他们的性别。如果没有向user.sex列传递任何内容,我将如何创建列表默认的空白值?我只是将male或female作为字符串传递。目的是我想要一个空白值,这样验证可以确保他们知道他们必须选择它。 最佳答案 有两种可能性,具体取决于您的追求:include_blanktrue)%>这将始终在选择中包含一个空白选项,这将允许人们在编辑表单上看到此值时将值设置回空白值。提示"Gender...")%>这将包括指定的提示值,只要该字段尚未设置。如果它有(例如在编辑表单上),则无需提醒用户他